package controllers

import (
	"github.com/gin-gonic/gin"
	"net/http"
	"simulationFulu/dao"
	"simulationFulu/models"
	"strconv"
)

func ProductAdd (c *gin.Context) {
	var req models.Product //通用请求结构
	// 绑定结构 错误处理
	if err := c.ShouldBindJSON(&req); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
		return
	}
	res:=dao.Add(&req)
	c.JSON(http.StatusOK, "影响行数"+string(res))
}

func ProductModify (c *gin.Context) {
	var req models.Product //通用请求结构
	// 绑定结构 错误处理
	if err := c.ShouldBindJSON(&req); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
		return
	}
	res:=dao.Modify(req.Id,&req)
	c.JSON(http.StatusOK, "影响行数"+strconv.FormatBool(res))
}

func ProductRemove (c *gin.Context) {
	var req models.Product //通用请求结构
	// 绑定结构 错误处理
	if err := c.ShouldBind(&req); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
		return
	}
	res:=dao.Remove(req.Id)
	c.JSON(http.StatusOK, "影响行数"+strconv.FormatBool(res))
}

func ProductGet (c *gin.Context) {
	var req models.Product //通用请求结构
	// 绑定结构 错误处理
	if err := c.ShouldBind(&req); err != nil {
		c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
		return
	}
	res:=dao.Get(req.Id)
	c.JSON(http.StatusOK, res)
}

func Products (c *gin.Context) {
	res:=dao.Query()
	c.JSON(http.StatusOK, res)
}